মডেল Export করা (HDF5, SavedModel)

Machine Learning - কেরাস ডিপ লার্নিং (Deep Learning with Keras) - Model Deployment এবং Production
265

মডেল ট্রেনিং সম্পন্ন হওয়ার পর, মডেলটি Export বা Save করা অত্যন্ত গুরুত্বপূর্ণ, যাতে পরবর্তীতে আপনি এটি পুনরায় ব্যবহার করতে পারেন বা উৎপাদন পরিবেশে ডেপ্লয় করতে পারেন। Keras মডেলগুলি HDF5 এবং SavedModel ফরম্যাটে সেভ করা যায়। দুইটি ফরম্যাটই জনপ্রিয়, তবে এগুলোর মধ্যে কিছু পার্থক্য রয়েছে, যা এখানে বিস্তারিতভাবে আলোচনা করা হবে।

১. HDF5 ফরম্যাট

HDF5 (Hierarchical Data Format version 5) হল একটি পোর্টেবল এবং হাই পারফরম্যান্স ডেটা স্টোরেজ ফরম্যাট, যা মডেল, ওজন, কনফিগারেশন এবং অন্যান্য মেটাডেটা সংরক্ষণ করতে ব্যবহৃত হয়।

মডেল HDF5 ফরম্যাটে সেভ করা

Keras মডেলটি HDF5 ফরম্যাটে সেভ করার জন্য .h5 এক্সটেনশন ব্যবহার করা হয়। এটি একটি খুবই সাধারণ পদ্ধতি এবং অনেক পরিবেশে ব্যবহারযোগ্য।

# মডেল তৈরি করা
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential()
model.add(Dense(64, input_dim=8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

# মডেল কম্পাইল করা
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=10, batch_size=32)

# মডেল সেভ করা HDF5 ফরম্যাটে
model.save('my_model.h5')

HDF5 ফরম্যাট থেকে মডেল লোড করা

from tensorflow.keras.models import load_model

# HDF5 ফাইল থেকে মডেল লোড করা
loaded_model = load_model('my_model.h5')

# মডেল ইভালুয়েশন
loss, accuracy = loaded_model.evaluate(X_test, y_test)
print(f'Loaded model accuracy: {accuracy}')
  • HDF5 ফরম্যাটের সুবিধা: এটি সহজে ব্যাকআপ নেয়া এবং পরিবেশে ট্রান্সফার করা যায়। কেবল মডেল এবং তার ওয়েটস সংরক্ষণ করা যায়।
  • HDF5 ফরম্যাটের সীমাবদ্ধতা: এটি কেবল মডেল এবং ওয়েটস সংরক্ষণ করে, কিন্তু সার্ভারের কনফিগারেশন, ট্রেইনিং লজিক এবং কিছু অতিরিক্ত স্টেট সেভ করতে পারে না।

২. SavedModel ফরম্যাট

SavedModel হল TensorFlow-এর স্ট্যান্ডার্ড ফরম্যাট যা একটি মডেলকে Python-independent এবং TensorFlow runtime environment-এ সেভ এবং লোড করতে সহায়ক। এটি পুরোপুরি সম্পূর্ণ মডেল সংরক্ষণ করে, যেমন ওয়েটস, কনফিগারেশন, গ্রাফ এবং আরও অনেক কিছু।

মডেল SavedModel ফরম্যাটে সেভ করা

# SavedModel ফরম্যাটে মডেল সেভ করা
model.save('my_saved_model')

এখানে my_saved_model নামক ফোল্ডার তৈরি হবে, যেখানে পুরো মডেল (গ্রাফ, ওয়েটস, কনফিগারেশন) সংরক্ষিত থাকবে।

SavedModel ফরম্যাট থেকে মডেল লোড করা

from tensorflow.keras.models import load_model

# SavedModel ফরম্যাট থেকে মডেল লোড করা
loaded_model = load_model('my_saved_model')

# মডেল ইভালুয়েশন
loss, accuracy = loaded_model.evaluate(X_test, y_test)
print(f'Loaded model accuracy: {accuracy}')
  • SavedModel ফরম্যাটের সুবিধা:
    • এটি পোর্টেবল এবং TensorFlow Serving বা TensorFlow Lite এর মতো পরিবেশে সহজেই ব্যবহার করা যায়।
    • এটি শুধুমাত্র মডেল ওয়েটস বা কনফিগারেশন নয়, বরং মডেল গ্রাফ এবং অন্যান্য গুরুত্বপূর্ণ উপাদানগুলি সংরক্ষণ করে।
    • এটি TensorFlow এবং TensorFlow Extended (TFX) পরিবেশে সর্বাধিক ব্যবহৃত।
  • SavedModel ফরম্যাটের সীমাবদ্ধতা:
    • SavedModel ফরম্যাটটি TensorFlow নির্ভরশীল। তাই, এটি অন্য কোনও লাইব্রেরি বা ফ্রেমওয়ার্কে ব্যবহার করা সম্ভব নয়।

৩. HDF5 vs SavedModel

ফিচারHDF5SavedModel
সংরক্ষিত উপাদানমডেল ও ওয়েটসমডেল, ওয়েটস, গ্রাফ, কনফিগারেশন
ব্যবহারযোগ্যতাKeras বা TensorFlow দিয়ে ব্যবহার করা সহজশুধুমাত্র TensorFlow ব্যবহৃত
পরিবহনযোগ্যতাআরও সহজে পরিবহনযোগ্যপূর্ণ TensorFlow পরিবেশে এক্সিকিউট করতে হবে
মডেল কনফিগারেশনশুধুমাত্র মডেল ওয়েটসমডেল গ্রাফ এবং কনফিগারেশন সহ
গতিদ্রুত মডেল সেভ ও লোডএকটু বেশি সময় নেয়, কিন্তু সম্পূর্ণ ফিচার সহ

৪. মডেল Export এবং Serve করা

SavedModel ফরম্যাটটি আরও কার্যকরী যখন মডেলটি উৎপাদন পরিবেশে ডেপ্লয় করতে হয়। আপনি TensorFlow Serving, TensorFlow Lite বা TensorFlow.js ব্যবহার করে মডেলটি সঠিকভাবে serve করতে পারেন।

TensorFlow Serving এর সাথে মডেল Serve করা:

docker pull tensorflow/serving
docker run -p 8501:8501 --name=tf_serving_model --mount type=bind,source=$(pwd)/my_saved_model,target=/models/my_saved_model -e MODEL_NAME=my_saved_model -t tensorflow/serving

এটি একটি HTTP API তৈরি করবে, যেখানে আপনি RESTful API মাধ্যমে মডেলটি ব্যবহার করতে পারবেন।

সারাংশ

  • HDF5 ফরম্যাট একটি কম্প্যাক্ট, সহজে ব্যবহারযোগ্য মডেল সংরক্ষণ ফরম্যাট, যা Keras এবং TensorFlow ব্যবহারকারীদের জন্য বেশ সুবিধাজনক।
  • SavedModel ফরম্যাট TensorFlow-এর পূর্ণাঙ্গ ফরম্যাট যা মডেল, গ্রাফ, কনফিগারেশন এবং ওয়েটস সংরক্ষণ করে এবং TensorFlow পরিবেশে ব্যবহার করা হয়।
  • HDF5 ব্যবহারের মাধ্যমে আপনি দ্রুত মডেল লোড ও সেভ করতে পারবেন, কিন্তু SavedModel TensorFlow পরিবেশে আরো উন্নত মডেল ডেপ্লয়মেন্ট ফিচার সরবরাহ করে।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...